/**
 * 标注的动画效果
 */
const ANIMATION = {
  DROP: 'BMAP_ANIMATION_DROP',
  BOUNCE: 'BMAP_ANIMATION_BOUNCE',
};

/**
 * 内置的右键菜单图标
 */
const CONTEXT_MENU_ICON = {
  ZOOM_IN: 'BMAP_CONTEXT_MENU_ICON_ZOOMIN',
  ZOOM_OUT: 'BMAP_CONTEXT_MENU_ICON_ZOOMOUT',
};

/**
 * 控件的定位
 */
const CONTROL_ANCHOR = {
  TOP_LEFT: 'BMAP_ANCHOR_TOP_LEFT',
  TOP_RIGHT: 'BMAP_ANCHOR_TOP_RIGHT',
  BOTTOM_LEFT: 'BMAP_ANCHOR_BOTTOM_LEFT',
  BOTTOM_RIGHT: 'BMAP_ANCHOR_BOTTOM_RIGHT',
};

/**
 * 长度单位制
 */
const LENGTH_UNIT = {
  METRIC: 'BMAP_UNIT_METRIC',
  IMPERIAL: 'BMAP_UNIT_IMPERIAL',
};

/**
 * 地图上所有覆盖物的容器集合
 */
const MAP_PANES = {
  FLOAT: 'floatPane', // 信息窗口所在容器
  FLOAT_SHADOW: 'floatShadow', // 信息窗口阴影所在容器
  LABEL: 'labelPane', // 文本标注所在容器
  MARKER: 'markerPane', // 标注图标所在容器
  MARKER_MOUSE: 'markerMouseTarget', // 标注点击区域所在容器
  MARKER_SHADOW: 'markerShadow', // 标注阴影所在容器
  MAP: 'mapPane', // 折现、多边形等矢量图形所在容器
};

/**
 * 地图类型
 */
const MAP_TYPE = {
  NORMAL: 'BMAP_NORMAL_MAP',
  PERSPECTIVE: 'BMAP_PERSPECTIVE_MAP',
  SATELLITE: 'BMAP_SATELLITE_MAP',
  HYBRID: 'BMAP_HYBRID_MAP',
};

/**
 * MapTypeControl的外观样式
 */
const MAP_TYPE_CONTROL_TYPE = {
  HORIZONTAL: 'BMAP_MAPTYPE_CONTROL_HORIZONTAL',
  DROPDOWN: 'BMAP_MAPTYPE_CONTROL_DROPDOWN',
  MAP: 'BMAP_MAPTYPE_CONTROL_MAP',
};

/**
 * 平移缩放控件的类型
 */
const NAVIGATION_CONTROL_TYPE = {
  LARGE: 'BMAP_NAVIGATION_CONTROL_LARGE',
  SMALL: 'BMAP_NAVIGATION_CONTROL_SMALL',
  PAN: 'BMAP_NAVIGATION_CONTROL_PAN',
  ZOOM: 'BMAP_NAVIGATION_CONTROL_ZOOM',
};

/**
 * 海量点预设的不同形状
 */
const SHAPE_TYPE = {
  CIRCLE: 'BMAP_POINT_SHAPE_CIRCLE',
  STAR: 'BMAP_POINT_SHAPE_STAR',
  SQUARE: 'BMAP_POINT_SHAPE_SQUARE',
  RHOMBUS: 'BMAP_POINT_SHAPE_RHOMBUS',
  WATERDROP: 'BMAP_POINT_SHAPE_WATERDROP',
};

/**
 * 海量点预设的不同尺寸
 */
const SIZE_TYPE = {
  TINY: 'BMAP_POINT_SIZE_TINY',
  SMALLER: 'BMAP_POINT_SIZE_SMALLER',
  SMALL: 'BMAP_POINT_SIZE_SMALL',
  NORMAL: 'BMAP_POINT_SIZE_NORMAL',
  BIG: 'BMAP_POINT_SIZE_BIG',
  BIGGER: 'BMAP_POINT_SIZE_BIGGER',
  HUGE: 'BMAP_POINT_SIZE_HUGE',
};

/**
 * 矢量图标类预设的图标样式
 */
const SYMBOL_SHAPE_TYPE = {
  CIRCLE: 'BMap_Symbol_SHAPE_CIRCLE',
  RECTANGLE: 'BMap_Symbol_SHAPE_RECTANGLE',
  RHOMBUS: 'BMap_Symbol_SHAPE_RHOMBUS',
  STAR: 'BMap_Symbol_SHAPE_STAR',
  BACKWARD_CLOSED_ARROW: 'BMap_Symbol_SHAPE_BACKWARD_CLOSED_ARROW',
  FORWARD_CLOSED_ARROW: 'BMap_Symbol_SHAPE_FORWARD_CLOSED_ARROW',
  BACKWARD_OPEN_ARROW: 'BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW',
  FORWARD_OPEN_ARROW: 'BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW',
  POINT: 'BMap_Symbol_SHAPE_POINT',
  PLANE: 'BMap_Symbol_SHAPE_PLANE',
  CAMERA: 'BMap_Symbol_SHAPE_CAMERA',
  WARNING: 'BMap_Symbol_SHAPE_WARNING',
  SMILE: 'BMap_Symbol_SHAPE_SMILE',
  CLOCK: 'BMap_Symbol_SHAPE_CLOCK',
};

/**
 * 驾车方案的策略配置
 */
const DRIVING_POLICY = {
  DEFAULT: 'BMAP_DRIVING_POLICY_DEFAULT',
  FIRST_HIGHWAYS: 'BMAP_DRIVING_POLICY_FIRST_HIGHWAYS',
  AVOID_HIGHWAYS: 'BMAP_DRIVING_POLICY_AVOID_HIGHWAYS',
  AVOID_CONGESTION: 'BMAP_DRIVING_POLICY_AVOID_CONGESTION',
};

/**
 * 跨城公交换乘策略
 */
const INTERCITY_POLICY = {
  LEAST_TIME: 'BMAP_INTERCITY_POLICY_LEAST_TIME',
  EARLY_START: 'BMAP_INTERCITY_POLICY_EARLY_START',
  CHEAP_PRICE: 'BMAP_INTERCITY_POLICY_CHEAP_PRICE',
};

/**
 * 市内公交方案换乘策略
 */
const TRANSIT_POLICY = {
  RECOMMEND: 'BMAP_TRANSIT_POLICY_RECOMMEND',
  LEAST_TIME: 'BMAP_TRANSIT_POLICY_LEAST_TIME',
  LEAST_TRANSFER: 'BMAP_TRANSIT_POLICY_LEAST_TRANSFER',
  LEAST_WALKING: 'BMAP_TRANSIT_POLICY_LEAST_WALKING',
  AVOID_SUBWAYS: 'BMAP_TRANSIT_POLICY_AVOID_SUBWAYS',
  FIRST_SUBWAYS: 'BMAP_TRANSIT_POLICY_FIRST_SUBWAYS',
};

/**
 * 跨城交通方式策略
 */
const TRANSIT_TYPE_POLICY = {
  TRAIN: 'BMAP_TRANSIT_TYPE_POLICY_TRAIN',
  AIRPLANE: 'BMAP_TRANSIT_TYPE_POLICY_AIRPLANE',
  COACH: 'BMAP_TRANSIT_TYPE_POLICY_COACH',
};

export default {
  ANIMATION,
  CONTEXT_MENU_ICON,
  CONTROL_ANCHOR,
  LENGTH_UNIT,
  MAP_PANES,
  MAP_TYPE,
  MAP_TYPE_CONTROL_TYPE,
  NAVIGATION_CONTROL_TYPE,
  SHAPE_TYPE,
  SIZE_TYPE,
  SYMBOL_SHAPE_TYPE,
  DRIVING_POLICY,
  INTERCITY_POLICY,
  TRANSIT_POLICY,
  TRANSIT_TYPE_POLICY,
};
